In the field on Internet commerce, it is known for online merchants to provide automated services for recommending products and/or services to potential customers. For example, a merchant that sells products over a Web site may provide the site with a recommendation service which uses the customer's prior purchasing history to predict additional products that may be of interest to the customer. These personalized product recommendations may be communicated to the customer via an email message, a dynamically-generated Web page, or some other communications method.
One method that is commonly used to generate the personalized recommendations is known as collaborative filtering. Collaborative filtering systems operate generally by asking each user to rate items (products or services) the user is familiar with, and storing these ratings within user-specific rating profiles. To identify the items that may be of interest to a particular user, the service correlates the user's rating profile to the profiles of other users to identify users with similar tastes.
For example, in the context of online book sales, suppose that a first user hates title 1, is indifferent about title 2, and likes titles 3 and 4; and that a second user hates title 1, is indifferent about title 2, likes title 3, and has not yet read title 4. A collaborative filtering system might use this information to predict that the second user will like title 4. When applied over large databases of user ratings data, this type of analysis can produce predictions that are valuable to both users and merchants.
One problem with collaborative filtering is that an item cannot be recommended until that item has been rated by a user who has rated other items. As a result, before a collaborative filtering service can be brought online, the service normally must be populated with ratings data for the items to be covered by the service. This may be accomplished, for example, by having a group of users rate the items to be included within the service prior to the service's release, and entering the resulting ratings data into the service's database.
While this method may work well for merchants that have relatively small, static product catalogs, the method is inadequate for merchants having large and/or constantly-changing product catalogs. For example, in the context of an Internet bookstore that carries millions of titles, it would be extremely difficult to find a test group that could rate a significant portion of the product catalog. In addition, even if such a test group could be identified, the task of collecting and entering the user ratings data for such a large number of titles would be daunting. In addition, if the service is to cover new product offerings, the task would have to be repeated as new titles are released.
As a result of these and other limitations in existing collaborative filtering systems, existing systems are commonly "static," meaning that they provide recommendations only with respect to a fixed set of items. In addition, the items covered by such recommendation services are typically well-known items for which ratings data can easily be obtained.
Another problem with collaborative filtering systems relates to the task of building rating profiles for new users of the system. Typically, the service handles this task by asking the user to rate some minimum number of the items that are covered by the service. This can be a frustrating task to a user that is familiar with only a small portion of the covered items, and can lead to the loss of potential customers.
The present invention addresses these and other problems with existing collaborating filtering systems.